home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / game / patch / pxhd.lha / ProjectX / src / lib / utils_macros.i < prev    next >
Text File  |  1997-08-11  |  3KB  |  155 lines

  1. ; ** currently used disk sizes
  2.  
  3. STD_DISK_SIZE = 901120    ; standard dos copiable disks
  4. B12_DISK_SIZE = 970752    ; 12 sectored 79 tracks disks, dos bootblock
  5. S12_DISK_SIZE = 983040    ; 12 sectored 79 tracks disks, dos bootblock
  6.  
  7. ; ** joypad button definitions (for JoyButtonsState)
  8.  
  9. ; ** masks
  10.  
  11. AFF_FIRE1 = $20        ; red joypad button
  12. AFF_START = $01        ; start/pause joypad button
  13. AFF_FIRE2 = $40        ; blue joypad button
  14. AFF_FIRE4 = $08        ; green joypad button
  15. AFF_FIRE3 = $10        ; yellow joypad button
  16. AFF_FORWD = $04        ; forward joypad key
  17. AFF_BACWD = $02        ; back joypad key
  18.  
  19. ; ** bits
  20.  
  21. AFB_START = $0        ; start/pause joypad button
  22. AFB_BACWD = $1        ; back joypad key
  23. AFB_FORWD = $2        ; forward joypad key
  24. AFB_FIRE4 = $3        ; green joypad button
  25. AFB_FIRE3 = $4        ; yellow joypad button
  26. AFB_FIRE1 = $5        ; red joypad button
  27. AFB_FIRE2 = $6        ; blue joypad button
  28.  
  29.  
  30. STORE_REGS: MACRO
  31.     movem.l    D0-D7/A0-A6,-(A7)
  32.     ENDM
  33.  
  34. RESTORE_REGS: MACRO
  35.     movem.l    (A7)+,D0-D7/A0-A6
  36.     ENDM
  37.  
  38. JSRGEN:MACRO
  39.     move.l    A5,-(sp)
  40.     move.l    _general_pbuffer(PC),A5
  41.     add.l    #_\1,A5
  42.     sub.l    #_GeneralPatchRoutines,A5
  43.     JSR    (A5)
  44.     move.l    (sp)+,A5
  45.     ENDM
  46.  
  47. JMPGEN:MACRO
  48.     move.l    _general_pbuffer(PC),A5
  49.     add.l    #_\1,A5
  50.     sub.l    #_GeneralPatchRoutines,A5
  51.     JMP    (A5)
  52.     ENDM
  53.  
  54. GETGENADDR:MACRO
  55.     move.l    _general_pbuffer(PC),D0
  56.     add.l    #_\1,D0
  57.     sub.l    #_GeneralPatchRoutines,D0
  58.     ENDM
  59.  
  60. GETRELADDR:MACRO
  61.     move.l    _general_pbuffer(PC),D0
  62.     add.l    #\1,D0
  63.     sub.l    #_GeneralPatchRoutines,D0
  64.     ENDM
  65.  
  66. GETRELLONG:MACRO
  67.     move.l    A0,-(sp)
  68.     move.l    _general_pbuffer(PC),A0
  69.     add.l    #\1,A0
  70.     sub.l    #_GeneralPatchRoutines,A0
  71.     move.l    (A0),D0
  72.     move.l    (sp)+,A0
  73.     ENDM
  74.  
  75. WAIT_LMB: MACRO
  76. wl\@
  77.     btst    #6,$BFE001
  78.     bne    wl\@
  79.     ENDM
  80.  
  81. ; ******* Macro Printf ********
  82. ; Mac_printf "text"   -> text + linefeed
  83. ; Mac_printf "text",*any argument* -> text without linefeed
  84.  
  85. Mac_printf: MACRO
  86.     move.l    A1,-(A7)
  87.     lea    text\@$(PC),A1
  88.     JSRABS    Display
  89.     bra    ftext\@$
  90. text\@$
  91.     dc.b    \1
  92.     IFLE    NARG-1
  93.     dc.b    10,13
  94.     ENDC
  95.     dc.b    0
  96.     even
  97. ftext\@$
  98.     move.l    (A7)+,A1
  99.     ENDM
  100.  
  101. PUTS: MACRO
  102.     move.l    A1,-(A7)
  103.     move.l    \1,A1
  104.     JSRABS    Display
  105.     move.l    (A7)+,A1
  106.     ENDM
  107.  
  108. NEWLINE: MACRO
  109.     move.l    A1,-(A7)
  110.     lea    text\@$(PC),A1
  111.     JSRABS    Display
  112.     bra    ftext\@$
  113. text\@$
  114.     dc.b    10,13,0
  115.     even
  116. ftext\@$
  117.     move.l    (A7)+,A1
  118.     ENDM
  119.  
  120.  
  121.  
  122. JSRABS:MACRO
  123.     jsr    _\1
  124.     ENDM
  125.  
  126. JMPABS:MACRO
  127.     jmp    _\1
  128.     ENDM
  129.  
  130. STOP_SOUND:MACRO
  131.     move.l    A5,-(sp)
  132.     lea    $DFF000,A5
  133.     move.w    #$0000,aud0+ac_len(A5)
  134.     move.w    #$0000,aud1+ac_len(A5)
  135.     move.w    #$0000,aud2+ac_len(A5)
  136.     move.w    #$0000,aud3+ac_len(A5)        ; shhhhht
  137.  
  138.     move.w    #$0000,aud0+ac_vol(A5)
  139.     move.w    #$0000,aud1+ac_vol(A5)
  140.     move.w    #$0000,aud2+ac_vol(A5)
  141.     move.w    #$0000,aud3+ac_vol(A5)        ; shhhhht
  142.     move.l    (sp)+,A5
  143.     ENDM
  144.  
  145. RELOCATE_GEN:MACRO
  146.     movem.l    D0/A0/A1,-(sp)
  147.     move.l    _general_pbuffer,D0    ; in the user code
  148.     add.l    #\1,D0
  149.     sub.l    #_GeneralPatchRoutines,D0
  150.     move.l    D0,A0
  151.     move.l    #\1,A1        ; to be sure to get absolute address.
  152.     move.l    (A1),(A0)    ; relocation in the general patch routines zone.
  153.     movem.l    (sp)+,D0/A0/A1
  154.     ENDM
  155.